#pragma once

#include "fxcc/imgui/Layer.h"
#include "e2d/core/Scene.h"
#include "e2d/ui/State.h"

namespace e2d
{
	struct SceneTreeNodeEditor :public fxcc::imgui::Layer
	{
		std::shared_ptr<e2d::Scene> m_Inst{0};

		std::vector<e2d::Entity*> m_SelectedEntities{};

		std::vector<e2d::Entity*> m_ClipboardEntities{};

		SceneTreeNodeEditor();

		void HandleSelection() override;

		void HandlePaste();

		void HandleDelete();
		
		void ViewFunc() override;

		void HandleFunc() override;
	
		void HandleAddNewEntity(std::shared_ptr<e2d::Entity> newEntity);

		bool TreeNodeEdit(std::shared_ptr<e2d::Entity> e);

		void EditItemDragDrop(std::shared_ptr<e2d::Entity> e);

	};
}
;